package com.gzg.userservice.utils;

public class UserContext {
    private static final ThreadLocal<Long> tl = new ThreadLocal<>();
    private static final ThreadLocal<String> ipThreadLocal = new ThreadLocal<>();

    /**
     * 保存当前登录用户信息到ThreadLocal
     * @param userId 用户id
     */
    public static void setUser(Long userId) {
        tl.set(userId);
    }

    /**
     * 获取当前登录用户信息
     * @return 用户id
     */
    public static Long getUser() {
        return tl.get();
    }

    /**
     * 移除当前登录用户信息
     */
    public static void removeUser(){
        tl.remove();
    }

    /**
     * 保存当前客户端IP地址到ThreadLocal
     * @param ip 客户端IP地址
     */
    public static void setIp(String ip) {
        ipThreadLocal.set(ip);
    }

    /**
     * 获取当前客户端IP地址
     * @return 客户端IP地址
     */
    public static String getIp() {
        return ipThreadLocal.get();
    }

    /**
     * 移除当前客户端IP地址
     */
    public static void removeIp() {
        ipThreadLocal.remove();
    }

}
